/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package collection;

import entity.ContaCorrente;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import persistencia.LeituraAgencia;
import persistencia.LeituraContaCorrente;
import persistencia.SalvarContaCorrente;
import presenter.CriarContaPresenter;
import presenter.LimparArquivo;

/**
 *
 * @author jakson
 */
public class CollectionContaCorrente {

    
    private persistencia.SalvarContaCorrente incluirArquivo = new SalvarContaCorrente(); 
    private ArrayList<ContaCorrente> contaCorrentes = new ArrayList<ContaCorrente>();
    private persistencia.LeituraContaCorrente leitura = new LeituraContaCorrente();
    private presenter.LimparArquivo limpar = new LimparArquivo();
    private entity.ContaCorrente C ;
    public ArrayList<ContaCorrente> getContaCorrentes() {
        return contaCorrentes;
    }

     

    public CollectionContaCorrente() {
         
        this.contaCorrentes = leitura.recuperaContaCorrente("src/arquivo/contaCorrente.txt");
        
    }
     
    public void incluirContaCorrente(ContaCorrente a){
        
        contaCorrentes.add(a);
        incluirArquivo.gravarContaCorrente(a);
        
    }
    
    public void excluirContaCorrente(String codigo) {

        for (int i = 0; i < this.contaCorrentes.size(); i++) {
            if (contaCorrentes.get(i).getnConta().compareTo(codigo) == 0) {
                contaCorrentes.remove(i);
                limpar.limpaArquivo("src/arquivo/contaCorrente.txt");

                
                    
                }
            }
        for (int j = 0; j < this.contaCorrentes.size(); j++){
                    incluirArquivo.gravarContaCorrente(contaCorrentes.get(j));
            } 
    
    }
    
    public void editacao(ContaCorrente a){
        
        for(int i=0; i< this.contaCorrentes.size();i++){
            
            if(this.contaCorrentes.get(i).getnConta().equals(a.getnConta())){
                
                this.contaCorrentes.set(i, a);
            }
                
        }
         limpar.limpaArquivo("src/arquivo/contaCorrente.txt");
          for (int j = 0; j < this.contaCorrentes.size(); j++){
                    incluirArquivo.gravarContaCorrente(contaCorrentes.get(j));
            } 
    
        
    }
     public void editar(String cod) {

        for (int i = 0; i < contaCorrentes.size(); i++) {

            if (contaCorrentes.get(i).getnConta().equals(cod)) {

                new CriarContaPresenter("","","bloquear", contaCorrentes.get(i));
              
            }

        }
    }
     
 public ContaCorrente buscaUsuario(String cpf){
        
        C = new ContaCorrente("", 0, "", 0, "", "","");
        
        try {
            for (int i = 0; i < contaCorrentes.size(); i++) {
                if (contaCorrentes.get(i).getCpf().equals(cpf)) {
                    C = contaCorrentes.get(i);
                }

            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Cliente não encontrado");
        }
       return C;
 }
}